This invention relates to the field of distributed data processing where a data processing operation takes place over a plurality of data processing units which are connected to each other via a network.
It is increasingly common to distribute a data processing operation over a plurality of data processing units, with each of the units communicating over a data communications network (e.g., the Internet). One reason for this is that a particular data processing unit may be able to do a job better than another, so a first unit makes a request for a second unit to do a particular job and then to return the result back to the first unit.
It is also very common for there to be a large number of intermediate data processing units in between the first unit that makes a request and the second unit that is being requested to do the work. Each intermediate unit receives the request, performs some initial processing to determine what to do with it, and then forwards it on to the next unit.
In order to detect problems in the message flow between units, prior art teachings have employed a test message which is sent by an originating data processing unit into the network of intermediate units on its way to a destination unit. The test message arrives at various intermediate units in the network on its way to the destination unit and reports are sent back to the originating unit by each intermediate unit to report the exact path that the test message took on its way through the network. For example, the well known Advanced Peer to Peer Networking (APPN) and TCP/IP (Transmission Control Protocol/Internet Protocol) provide such functionality. U.S. Pat. No. 5,668,800 (commonly assigned to IBM Corp.) is another example of such prior art.
A major problem, however, still exists in this art. At each intermediate unit, a local administrator is permitted to enter commands to affect/control the processing that is taken by the intermediate unit in deciding where next to forward the request. As an example, perhaps the administrator of one intermediate unit prefers a particular neighboring intermediate unit over another for certain types of requests so that the administrator commands the intermediate unit to route the request to that particular neighboring intermediate unit. Thus, while it is helpful to use the above-described prior art technique to determine the path a message takes through a network of intermediate units, the human user at the originating unit has no idea as to why the test message has taken this particular path through the network. The local human administrator at each intermediate node has potentially made an arbitrary decision concerning where next to forward the message, and such arbitrariness makes it difficult to impossible for the human user at the originating unit to determine why the text message went through the particular path that it took, thus making detection and diagnosis of errors very difficult.
According to one aspect, the present invention provides a data processing apparatus for testing a network of data processing units comprising: means for sending a test message from an originating data processing unit to a destination data processing unit via an intermediate data processing unit; means for receiving at the originating data processing unit a channel definition from the intermediate data processing unit, the channel definition defining an action taken at the intermediate data processing unit to determine a next intermediate data processing unit to forward on the test message to; and means for displaying the channel definition at the originating data processing unit.
According to a second aspect, the present invention provides a data processing method having method steps corresponding to each element of the data processing apparatus of the first aspect of the invention.
According to a third aspect, the present invention provides a computer readable storage medium having a computer program stored on it which, when executed on a computer, carries out the functionality of data processing method of the second aspect of the invention.
Accordingly, due to the present invention, it becomes very clear at the originating data processing unit exactly why the intermediate data processing units have decided to select the particular adjoining intermediate data processing units that they selected in routing the test message to the destination data processing unit. This greatly helps a user at the originating unit to understand the particular network and thus make a better and more informed diagnosis of any network transmission problems.
That is, it is not good enough to just know which intermediate units a test message passed through (as the prior art provided). If you know why the message passed through a certain group of intermediate units you can, for example, determine whether a particular intermediate unit can be requested to modify its selection technique to select a different subsequent intermediate unit, if the chosen one is causing a problem for the originating unit. On the other hand, with the prior art, the user at the originating unit would not know whether the intermediate unit had made an arbitrary choice in selecting the next intermediate unit.
The invention removes much frustration of the user at the originating unit, because the user is not left wondering why the test message has taken a long circuitous route through a network of intermediate units when the user would have preferred a more direct route. If the reason is a good one, then the user will accept that there is not much that can be done to alter the situation. However, if the reason is not a good one, then the user can query the intermediate units and request that they alter their selection techniques so that a more direct path can be selected for future message transmissions through the network from this particular originating unit to the particular destination unit.